package com.ruoyi.mapper.production;

import com.ruoyi.domain.production.MesWorkOrderProcess;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工单工序记录Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface MesWorkOrderProcessMapper
{
    /**
     * 查询工单工序记录
     * 
     * @param processId 工单工序记录主键
     * @return 工单工序记录
     */
    public MesWorkOrderProcess selectMesWorkOrderProcessByProcessId(Long processId);

    /**
     * 查询工单工序记录列表
     * 
     * @param mesWorkOrderProcess 工单工序记录
     * @return 工单工序记录集合
     */
    public List<MesWorkOrderProcess> selectMesWorkOrderProcessList(MesWorkOrderProcess mesWorkOrderProcess);

    /**
     * 根据工单ID查询工序记录列表
     * 
     * @param orderId 工单ID
     * @return 工单工序记录集合
     */
    List<MesWorkOrderProcess> selectProcessByOrderId(@Param("orderId") Long orderId);

    /**
     * 根据工单编号查询工序记录列表
     * 
     * @param orderCode 工单编号
     * @return 工单工序记录集合
     */
    List<MesWorkOrderProcess> selectProcessByOrderCode(@Param("orderCode") String orderCode);

    /**
     * 根据设备ID查询工序记录列表
     * 
     * @param equipmentId 设备ID
     * @return 工单工序记录集合
     */
    List<MesWorkOrderProcess> selectProcessByEquipmentId(@Param("equipmentId") Long equipmentId);

    /**
     * 根据操作工ID查询工序记录列表
     * 
     * @param workerId 操作工ID
     * @return 工单工序记录集合
     */
    List<MesWorkOrderProcess> selectProcessByWorkerId(@Param("workerId") Long workerId);

    /**
     * 根据状态查询工序记录列表
     * 
     * @param status 状态
     * @return 工单工序记录集合
     */
    List<MesWorkOrderProcess> selectProcessByStatus(@Param("status") String status);

    /**
     * 新增工单工序记录
     * 
     * @param mesWorkOrderProcess 工单工序记录
     * @return 结果
     */
    public int insertMesWorkOrderProcess(MesWorkOrderProcess mesWorkOrderProcess);

    /**
     * 修改工单工序记录
     * 
     * @param mesWorkOrderProcess 工单工序记录
     * @return 结果
     */
    public int updateMesWorkOrderProcess(MesWorkOrderProcess mesWorkOrderProcess);

    /**
     * 删除工单工序记录
     * 
     * @param processId 工单工序记录主键
     * @return 结果
     */
    public int deleteMesWorkOrderProcessByProcessId(Long processId);

    /**
     * 批量删除工单工序记录
     * 
     * @param processIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesWorkOrderProcessByProcessIds(Long[] processIds);
}
